﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entities;
using System.Data.SqlClient;
namespace AccesoDatos
{
    public class Tipos_Documentos
    {
        public static List<Tipo_Documento> ObtenerTodos()
        {
            SqlConnection conexion = null;
            List<Tipo_Documento> lstTipoDocumento = null;
            try
            {
                conexion = DB.Conectar();
                string comando = "SELECT idTipoDoc, nombre FROM Tipo_Documento ORDER BY nombre";
                List<SqlParameter> lstParametros = new List<SqlParameter>();
                SqlDataReader dr = DB.GenerarReader(comando, lstParametros, conexion);
                //List<Tipo_Documento> lstTipoDocumento = new List<Tipo_Documento>();
                lstTipoDocumento = new List<Tipo_Documento>();
                Tipo_Documento oTipoDocumento;
                while (dr.Read())
                {
                    oTipoDocumento = new Tipo_Documento();
                    oTipoDocumento.IdTipoDoc = (int)dr["idTipoDoc"];
                    oTipoDocumento.Nombre = dr["nombre"].ToString();
                    lstTipoDocumento.Add(oTipoDocumento);
                    oTipoDocumento = null;
                }
                //conexion.Close();
            }
            catch (SqlException ex)
            {
                //Con throw la información de la pila es mas profunda de donde se genero el error
                //En la capa de Presentación se Captura como Exception
                throw new Exception("Hubo un problema al cargar los tipos de documentos.", ex);
            }
            catch (Exception ex)
            {
                throw new Exception("Hubo un problema al cargar los tipos de documentos.", ex);
            }
            finally
            {
                conexion.Close();
            }
            return lstTipoDocumento;
        }
        public static Tipo_Documento BuscarPorId(int id)
        {
            SqlConnection conexion = null;
            Tipo_Documento oTipoDocumento = null;
            try
            {
                conexion = DB.Conectar();
                string comando = "SELECT idTipoDoc, nombre FROM Tipo_Documento WHERE (idTipoDoc = @id)";
                List<SqlParameter> lstParametros = new List<SqlParameter>();
                lstParametros.Add(new SqlParameter("@id", id));
                SqlDataReader dr = DB.GenerarReader(comando, lstParametros, conexion);
                //Tipo_Documento oTipoDocumento = null;
                while (dr.Read())
                {
                    oTipoDocumento = new Tipo_Documento();
                    oTipoDocumento.IdTipoDoc = (int)dr["idTipoDoc"];
                    oTipoDocumento.Nombre = dr["nombre"].ToString();
                }
                //conexion.Close();
            }
            catch (SqlException ex)
            {
                //Con throw la información de la pila es mas profunda de donde se genero el error
                //En la capa de Presentación se Captura como Exception
                throw new Exception("Hubo un problema al cargar el tipo de documento.", ex);
            }
            catch (Exception ex)
            {
                throw new Exception("Hubo un problema al cargar el tipo de documento.", ex);
            }
            finally
            {
                conexion.Close();
            }     
            return oTipoDocumento;
        }
    }

}
